"""异常使用示例路由"""
from fastapi import APIRouter, Query
from app.schemas.rr import RR
from app.exception import CodeException

router = APIRouter()


@router.get("/exception-example", response_model=RR)
async def exception_example(error_type: str = Query(..., description="错误类型：no_login, token_illegal, entity_exist, entity_not_found, invalid_param, no_permission, sys_tip")):
    """
    异常使用示例接口
    
    用于演示不同类型的业务异常如何抛出和处理
    """
    
    # 根据错误类型抛出相应的异常
    if error_type == "no_login":
        raise CodeException.no_login("您尚未登录，请先登录")
    elif error_type == "token_illegal":
        raise CodeException.token_illegal("您的登录已过期，请重新登录")
    elif error_type == "entity_exist":
        raise CodeException.entity_exist("用户已存在，请使用其他用户名")
    elif error_type == "entity_not_found":
        raise CodeException.resource_not_found("用户不存在")
    elif error_type == "invalid_param":
        raise CodeException.invalid_param("参数验证失败，请检查输入")
    elif error_type == "no_permission":
        raise CodeException.not_permission("您没有权限执行此操作")
    elif error_type == "sys_tip":
        raise CodeException.sys_error("系统维护中，请稍后再试")
    else:
        # 成功响应示例
        return RR.success("操作成功", msg="这是一个成功响应示例")